GitHub ImporterでRepositoryをImportした際に保持される情報を確認してみた
こんにちは、CX事業本部の若槻です。
GitHubには他のVCS上のRepositoryをImportして複製を作成することができるGitHub Importerという機能があります。
If you have a project hosted on another version control system, you can automatically import it to GitHub using the GitHub Importer tool.
GitHub Importerを使えば、GitHubのブラウザコンソールからImport元のclone URLを指定するだけで、Repositoryの複製を簡単に作成することができます。
今回は、このGitHub ImporterでRepository(GitHub)がImportされる際にどのような情報が保持されるのか確認してみました。
確認してみる
以下の情報について、実際にImport操作を行ってImport元のRepository(GitHub)の情報がImport後の新しいRepositoryでも保持されるのか確認してみます。
情報 | 確認箇所(https://github.com/<OWNER>/<REPOSITORY> 配下のURLパス) |
---|---|
commit | /commits |
branch | /branches |
pacakge | /packages |
release | /releases |
Issue | /issues |
Pull request | /pulls |
Actionsの実行履歴 | /actions |
Project | /projects |
Secret | /settings/secrets |
なお、今回はImport元のRepositoryとして、Import先と同じGitHubアカウント上のPrivate Repositorytest
を対象としてみます。
Importの実施
RepositoryのImport先としたいGitHubアカウントにログインし、ページの右上の[+]をクリックして[Import repository] を選択します。
[Import your project to GitHub]ページが開きます。
[Your old repository's clone URL]で、ImportするRepositoryのclone URLを指定します。(今回はtest
Repositoryを指定しました。)
[Your new repository details]で、[Owner]ではImport先のGitHubアカウント、[Name]では新しいRepositoryの名前を指定します。(今回はtest2
という名前を指定しました。)
[Privacy]で、新しいRepositoryが「Public」か「Private」かを選択します。
[Begin import]をクリックしてImportを開始します。
以下のページが開き、Importが開始されます。
Private RepositoryからImportする場合は、開始後に少し経つと以下のように表示されて認証を要求されるので、GitHubアカウントのログイン情報を入力して[Submit]を入力します。
Your old project requires credential for read-only access We will only temporarily store them for importing.
この時、GitHubアカウントで2要素認証が設定されている場合は認証が通らない(繰り返し要求される)動作となるため、その場合は[Personal access tokens]ページでアクセストークンを作成し、[Password]に指定する必要があるとのことです。
私のGitHubアカウントでも2要素認証が設定されていましたが、同様の対処で認証させることができました。(利用したアクセストークンには念のため全ての権限スコープを付与しました。)
しばらく待って、Importing complete!
と表示されたらImportは完了です。(Import画面を閉じても完了時にメール通知が来ます。)
新しいRepositoryとしてtest2
が作成されました。
確認結果
Importにより新規作成されたRepositorytest2
を確認したところ、Import元の情報のうち「commit」「branch」「Actionsの実行履歴」の情報が保持される結果となりました。
情報 | 保持の有無 | 確認箇所(https://github.com/<OWNER>/<REPOSITORY> 配下のURLパス) |
---|---|---|
commit | ○ | /commits |
branch | ○ | /branches |
pacakge | ☓ | /packages |
release | ☓ | /releases |
Issue | ☓ | /issues |
Pull request | ☓ | /pulls |
Actionsの実行履歴 | ○ | /actions |
Project | ☓ | /projects |
Secret | ☓ | /settings/secrets |
Import元とできるSVCはGitHubに限定されないため、保持される情報はcommitとbranchくらいかなぁと考えていたので、Actionsの実行履歴が保持されたのは意外でした。
補足
今回はGitHubにおけるRepositoryの「Import」について確認しましたが、既存Repositoryを元にして新規Repositoryを作成する方法には他にも「Clone」「Fork」「template」「Transfer」などいくつかあります。
- Cloning a repository - GitHub Help
- Fork a repo - GitHub Help
- Creating a repository from a template - GitHub Help
- Transferring a repository - GitHub Help
ここでは各方法の詳細には触れませんが、それぞれで出来ることは異なるので目的に応じて使い分けたいですね。
おわりに
今回はGitHub ImporterでRepositoryをImportした際にどんな情報が保持されるのかを確認してみました。
今までRepositoryの複製を作成するときはgit clone
コマンドを利用していましたが、この機能を使えばもっと簡単に複製が行えそうです。
参考
- Importing a repository with GitHub Importer - GitHub Help
- GitHub で自分のリポジトリを Fork (フォーク)する方法 - 強火で進め
- 【GitHub】GitHub Package RegistryでDockerイメージを公開する(2019/10/27現在) - 開発覚書はてな版
以上